#ifndef PARSER_H
#define PARSER_H

#include "graph.h"
#include <getopt.h>

class Parser {
  public:
    constexpr static struct option longOpts[] = {
        {"node", required_argument, nullptr, 0},
        {"edge", optional_argument, nullptr, 0},
        {"alpha", optional_argument, nullptr, 0},
        {"beta", optional_argument, nullptr, 0},
        {"gamma", optional_argument, nullptr, 0},
        {"p", optional_argument, nullptr, 0},
        {"k", optional_argument, nullptr, 0},
        {"m", optional_argument, nullptr, 0},
        {"m0", optional_argument, nullptr, 0},
        {"network", required_argument, nullptr, 1},
        {"dynamic", required_argument, nullptr, 1},
        {"output-type", required_argument, nullptr, 1},
        {"info-level-meta", required_argument, nullptr, 1},
        {"info-level-temp", required_argument, nullptr, 1},
        {"enable-ABM", required_argument, nullptr, 1},
        {"help", no_argument, nullptr, 2}};
    static Graph &initGraphPara(Graph &M, int argc, char **argv);
};

#endif
